<?php
namespace framework\exception;

use \Exception;

/**
 * 自定义异常
 */
class NewException extends \Exception
{
    /**
     * 错误代码：框架未初始化
     *
     * @var int
     */
    const CODE_UNINITIALIZE = 101;
    /**
     * 错误代码：错误的调用
     *
     * @var int
     */
    const CODE_ERROR_CALL = 102;
    /**
     * 错误代码：分发动作错误
     *
     * @var int
     */
    const CODE_ERROR_ACTION = 103;
    /**
     * 错误代码：参数错误
     *
     * @var int
     */
    const CODE_ERROR_PARAMS = 104;

    /**
     * 扩展信息
     *
     * @var array
     */
    private $data = array();

    /**
     * 初始化异常
     *
     * @param int    $code
     * @param string $message
     * @param array  $data
     */
    public function __construct($code, $message, $data = array())
    {
        parent::__construct($message, $code);

        $this->data = $data;
    }

    /**
     * 获取扩展信息
     *
     * @return array
     */
    public function getData()
    {
        return $this->data;
    }
}